package com.ld.security.server.admin.modules.ge.mapping;


import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

public interface ProxyMapping {



    @Delete("${sql}")
    @DS("#0")
    int delete(String dataSourceId,@Param("sql") String sql,@Param("args") Object args);


    @Update("${sql}")
    @DS("#0")
    int update(String dataSourceId,@Param("sql") String sql,@Param("args") Object args);

    @Select("${sql}")
    @DS("#0")
    List query(String dataSourceId,@Param("sql") String sql,@Param("args") Object args);


    @Select("${sql}")
    @DS("#1")
    IPage<Map> page(IPage page,String dataSourceId, @Param("sql") String sql, @Param("args") Object args);


    @DS("#0")
    @Select("${sql} ${ew.customSqlSegment}")
    List<Map> all(String dataSourceId,@Param("sql") String sql, @Param(Constants.WRAPPER) Wrapper wrapper);

    @DS("#0")
    @Select("${sql} ${ew.customSqlSegment}")
    List<Map> proxySqlAll(String dataSourceId,@Param("sql") String sql,@Param("args") Object args, @Param(Constants.WRAPPER) Wrapper wrapper);



}
